<?php

//增加命名空间
namespace admin\model;

use core\Model;

class CategoryModel extends Model{
    //保存属性名到表中
    protected $table='category';

    //获取所以的分类信息
    public function getAllCategories(){
        //组织sql
        $sql="select * from {$this->getTable()} order by c_sort desc ";
        //获取结果
        $categories= $this->query($sql,true);
        //进行无限极分类加工
        return   $this->noLimitCategory($categories);
    }
    //无限极分类
    public function noLimitCategory($categories,$parent_id=0,$level=0,$stop=0){
        //建立一个数组保存要的结果
        static  $list =array();
        //遍历数组:获取满足要求的结果
        foreach ($categories as $cat){
            //判定当前宿舍是否值得留下
           if ( $cat['id']==$stop) continue;
            //匹配条件
            if ($cat['c_parent_id']==$parent_id){
                //增加level
                $cat['level']=$level;
                //当前需要的分类
                $list[$cat['id']]=$cat;
                //当前分类$cat可能还有子分类:递归
                $this->noLimitCategory($categories,$cat['id'],$level+1);
            }
        }
//        返回所有结果
        return $list;
    }
    //验证当前父分类是否已经存在
    public function checkCategoryName($parent_id,$name){
        //组织sql并执行
        $sql="select id from {$this->getTable()} where c_parent_id={$parent_id} and c_name='{$name}'";
        //执行
        return $this->query($sql);
    }
    //分类入库
    public function insertCategory($name,$parent_id,$sort){
        //组织sql语句
       $sql="insert into {$this->getTable()} values(null,'{$name}',{$sort},{$parent_id})";
        //执行sql
        return $this->exec($sql);
    }
    //获取子分类
    public function getSon($id){
        //验证 有没有父分类中分类id是当前分类的id
        $sql="select id from {$this->getTable()} where c_parent_id={$id}";
        //返回执行操作
        return $this->query($sql);
    }

}
